/**
 * 登录状态管理工具类
 */
class Auth {
	/**
	 * 检查是否已登录
	 * @returns {boolean}
	 */
	static isLoggedIn() {
		const token = uni.getStorageSync('userToken');
		return !!token;
	}

	/**
	 * 获取用户信息
	 * @returns {Object|null}
	 */
	static getUserInfo() {
		return uni.getStorageSync('userInfo') || null;
	}

	/**
	 * 获取用户token
	 * @returns {string|null}
	 */
	static getToken() {
		return uni.getStorageSync('userToken') || null;
	}

	/**
	 * 保存登录信息
	 * @param {Object} userInfo 用户信息
	 * @param {string} token 登录token
	 */
	static saveLoginInfo(userInfo, token) {
		uni.setStorageSync('userInfo', userInfo);
		uni.setStorageSync('userToken', token);
	}

	/**
	 * 清除登录信息
	 */
	static clearLoginInfo() {
		uni.removeStorageSync('userInfo');
		uni.removeStorageSync('userToken');
	}

	/**
	 * 退出登录
	 */
	static logout() {
		this.clearLoginInfo();
		// 跳转到登录页
		uni.reLaunch({
			url: '/pages/login/login'
		});
	}

	/**
	 * 检查登录状态，如果未登录则跳转到登录页
	 * @returns {boolean} 是否已登录
	 */
	static checkLoginAndRedirect() {
		if (!this.isLoggedIn()) {
			uni.reLaunch({
				url: '/pages/login/login'
			});
			return false;
		}
		return true;
	}
}

export default Auth;
